perm filename LET.PUB[D,LES] blob
sn#414731 filedate 1979-02-02 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 .<< ∂TYP date $ addressee $ from $ subject ∞
C00012 00003 .at "∂AIL" data "∞" ⊂
C00018 00004 .going←0
C00022 ENDMK
C⊗;
.<< ∂TYP date $ addressee $ from $ subject ∞
. TYP = AIL for AI Lab letter
. CSL for CS letter
. AIM for AI Lab memo
. CSM for CS memo
. date defaults to today,
. addressee contains "↓" wherever you want a CRLF,
. from defaults to standard name
. subject may be omitted
.
. CB "title"; prints a centered boldface title;
. SGN generates a signature line.
.
. After "∞" comes "Dear so-and-so:".
. After text of letter, put
.SGN (which generates signature line).
. >>
.
.TURN ON "%{α"
.bottom←53;
.device xgp;
. page frame bottom high 85 wide
. title area heading lines 1 to 10 char 1 to 80;
. area text lines 4 to bottom char 1 to 80;
.
. font 1 "basl30"; font 2 "basi30"; font 3 "basb30";
. AT "ffi" ⊂ IF 0<THISFONT≤3 THEN "≠" ELSE "fαfαi" ⊃;
. AT "ffl" ⊂ IF 0<THISFONT≤3 THEN "α∞" ELSE "fαfαl" ⊃;
. AT "ff" ⊂ IF 0<THISFONT≤3 THEN "≥" ELSE "fαf" ⊃;
. AT "fi" ⊂ IF 0<THISFONT≤3 THEN "α≡" ELSE "fαi" ⊃;
. AT "fl" ⊂ IF 0<THISFONT≤3 THEN "∨" ELSE "fαl" ⊃;
. AT "--" ⊂ IF 0<THISFONT≤3 THEN "¬" ELSE "-α-" ⊃;
.
.fntlst←"456789ABCDEFG";
.n←0; << font # gensym >>
.recursive macro defont(fnm); ⊂ start
. if declaration(fnm)=0 then start
. n←n+1; fnm←fnt←fntlst[n];
. font fnt "fnm";
. end
. else fnt←fnm;
. end ⊃;
.
.at "↓"; ⊂ }
.⊃;
.
.macro letter(data); ⊂
.<< namad = date$to$from$subject$file>>
.ODDLEFTBORDER←EVENLEFTBORDER←1000;
.every heading();
.if going=0 then going←1 else next page;
.nofill;
.count page from 2;
.sss←"data"; foo←scan(sss," ","","XR"); dat←scan(sss,"$","","is");
.xxx←namad←scan(sss,"$","","IS");
.zzz←scan(xxx,"↓","","IS"); if 2<length(xxx)<5 then namad←zzz&"↓"&eval(xxx);
.author←scan(sss,"$","","is");
.subject←scan(sss,"$","","is"); file←sss;
.place heading;
. ⊃
.
.macro head(spc,aut); ⊂ place text; nofill; select 1; group skip spc;
.(namad)}
.subj;
.fill adjust;
.every heading(%3{dat},,Page {page!});
.author←"aut";
.⊃
.
.macro memo(spc,aut); ⊂ place text; begin "memo"
.fill; nojust; indent 0,8; crbreak; tabs 9; turn on "\%"; preface 0; group skip spc;
.xxx←namad; nam←scan(xxx,"↓");
%3To:\%1{nam}
.skip;
%3From:\%1{(if length("aut")>1 then "aut" else author)}
.end "memo";
.subj;
.fill adjust;
.every heading(%3{dat},,Page {page!});
.⊃
.
.macro subj; ⊂
.fill adjust;
.if length(subject)>2 then BEGIN "subject" turn on "%∂"; nojust; indent 0,8;crbreak;
%3Subject:∂9%1{subject}
.end "subject";
.select 1;
. ⊃
.
.macro ref ⊂ select 3; nojust; boldit;
References:
.count ref inline; at "⊗" ⊂next ref; ("["&ref&"] ");⊃
.select 1; indent 0,8;
. ⊃
.
.macro sgn; ⊂ BEGIN "signed" nofill; group;narrow 50;
.SKIP;
Best regards,
.skip 3
{author}
.if length(file) then start defont("ngr20"); select fnt; narrow;
File: {file}
. end
.END "signed"; ⊃
.
.macro cb(head) ⊂ if lines<5 then next page else skip; once center; select 3
head
.⊃
.
.macro boldit ⊂ turn on "%";
. at """" ⊂ (if thisfont=1 then "%3" else "%1") ⊃;
. at "<" ⊂"%2"⊃; at ">" ⊂"%1"⊃;
.⊃
.
.at "∂AIL" data "∞"; ⊂
.letter(|data|)
.begin turn on "→"
.defont("STAN2"); defont("NGB25"); select stan2;
S{("%"&ngb25)}Artificial Intelligence Laboratory, STANFORD UNIVERSITY, Stanford, California 94305
Telephone 415 497-4971→{dat}
. end
.head(4,|Les Earnest↓Associate Director, SAIL|);
.xgenlines←xgenlines-4;
.⊃
.
.at "∂CSL" data "∞"; ⊂
.letter(|data|)
.begin turn on "→"
.defont("STAN2"); defont("NGB25"); select stan2;
S{("%"&ngb25)}Computer Science Department, STANFORD UNIVERSITY, Stanford, California 94305
→{dat}
. end
.head(4,|Les Earnest↓Associate Director, SAIL|);
.xgenlines←xgenlines-4;
.⊃
.
.AT "∂AIM" data "∞" ⊂
.letter("data");
.defont("micr25"); defont("ngb30");
.SELECT micr25; CENTER; preface 0;
OFFICE MEMORANDUM * STANFORD UNIVERSITY * OFFICE MEMORANDUM
.SKIP; SELECT ngb30;
STANFORD ARTIFICIAL INTELLIGENCE LABORATORY
.SELECT 3; SKIP;
{DAT}
.memo(4,"Les Earnest, Associate Director, SAIL");
.⊃
.
.AT "∂CSM" data "∞" ⊂
.letter("data");
.defont("micr25"); defont("ngb30");
.SELECT micr25; CENTER;
OFFICE MEMORANDUM * STANFORD UNIVERSITY * OFFICE MEMORANDUM
.SKIP; SELECT ngb30;
COMPUTER SCIENCE DEPARTMENT
.SELECT 3; SKIP;
{DAT}
.memo(3,"Les Earnest, Senior Research Associate");
.⊃
.at "∂HOM" data "∞" ⊂
.letter(|data|);
.defont("micr25");
.center;select micr25;
Les Earnest, 12769 Dianne Drive, Los Altos Hills, California 94022
Telephone: (work) 415 497-4202, (home) 415 941-3984
.SELECT 3; SKIP;
{dat}
.head(4,|Les Earnest|);
.⊃
.going←0;
.portion main; place text;
.preface 1;
.if declaration(super!)=0 then start "mfile"
. require "m" source_file;
. end "mfile"